1. Table of Abbreviations
AGE--automatic test generation PA1 ATE--automated test equipment PA1 CMOS--complementary metal oxide semiconductor PA1 CPU--central processing unit PA1 CUT--component under test PA1 DAC--digital to analog converters PA1 ECL--emitter-coupled logic PA1 FET--field effect transistor PA1 IC--integrated circuit PA1 PCB--printed circuit board PA1 PCBUT--printed circuit board under test PA1 RAM--random access memory PA1 ROM--read only memory PA1 TTL--transistor-transistor logic PA1 UUT--unit under test
2. Printed Circuit Boards and Components
Printed circuit boards (PCB's), which began to be commonly used in the 1950's. allow components to be packed together more densely, into compact, modular electronic circuits. Another development is integrated circuits (IC's), which may package into one component what was previously the circuitry of an entire PCB. Despite the increased functionality of individual IC's, however, greater complexity at the PCB level continues to result in varieties of IC's interconnected on a PCB.
Many PCB's have analog as well as digital components. Test methods differ depending on whether analog or digital output devices are being tested. Analog testing measures signals that are quantitative and continuous, such as voltage and current. Digital testing compares logic patterns to determine whether they fall within a predetermined pattern of high or low states (binary 0's or 1's), with quantitative values outside threshold high or low ranges being unimportant.
3. Functional Testing
Functional testing is performed while a circuit is under power. Its basic premise is that any circuit can be modeled as a "black box", having an output port and an input port, and having a transfer function that relates the output port to the input port in a predictable way. A functional test determines whether a circuit with a given transfer function operates correctly by determining whether its outputs respond as expected to known stimuli.
Traditionally, functional testing of analog circuits is implemented with various stimulus and measurement instruments such as voltage and current sources, oscilloscopes, and meters. Output signals are measured to determine if they fall within acceptable parameters such as time, voltage, and current. In non-automated testing, a test operator sets up each instrument and makes appropriate connections to the unit under test (UUT).
Functional testing of digital circuits applies digital patterns to circuit inputs and compares the circuit output to expected values. Simple digital circuits use combinatorial, or static, logic, which lends itself to easy testing. A given input state results in a given output state and remains fixed. A truth table describes the digital transfer function, and the correctness of the truth table may be verified. In non-automated testing, logic tracing and signal injection methods, using hardware devices such as logic probes, logic clips, and logic pulsers, are used to find errors in simple digital circuits.
Simulators are a software tool first used in the 1970's to deal with digital logic circuits. Generally, a simulator duplicates the circuit as a computer model. Using this model, the circuit's output pattern for a given input pattern is predicted. Functional testing of digital components became more complex when digital components began to use sequential rather than combinatorial logic and as clock speeds increased. For such circuits, modern types of digital functional testers include signature analyzers, logic analyzers, and emulators.
A significant problem with functional testing is the difficulty of developing test programs. In digital systems, especially, board functional test input may be complex and difficult to specify properly. The test signals must cause digital circuit activity to propagate from the UUT input, through the circuit to the point of fault, and from the fault site to the UUT output.
Functional testing of a PCB may occur at both the board and at the component level. The advantage of component functional testing is that tests are obtainable from a common set of industry components, but unless the components can be disconnected during the test, the in-circuit effects of the rest of the circuit must be considered. Thus, at the component level, functional testing differs according to whether the component under test can be disconnected from other PCB circuitry. If the component is disconnected, functional testing is simply an end-to-end driving and sensing to determine its operation. When disconnection is impractical, however, the component must be tested in-circuit.
4. In-Circuit Testing
Parallel to the development of testers using functional test strategies came developments in testing components while in-circuit on a PCB. In 1965, General Electric developed a means to electrically isolate and test passive components while they remained in-circuit. This technique led to the use of the term "in-circuit" to describe this type of tester. In-circuit testing attempts to test each component on a PCB for its own parameters. Analog measurements of component parameters, such as resistor values, diode conductance, or voltage levels, may be made.
5. Functional In-Circuit Testing
Functional in-circuit testing of components on a PCB combines features of functional and in-circuit testing. As in passive in-circuit testing, parameter values are verified. In addition, functional testing of each component while the component is under power and in-circuit is performed. It uses the functional technique of driving inputs and sensing outputs.
Because in-circuit testing looks directly at each component on a PCB as an independent entity, there must be access to the component under test (CUT) and the CUT must be electrically isolated. Access requires an electrical connection to every lead, or "point", of the CUT. Isolation is accomplished differently, according to whether the CUT is analog or digital. For digital IC's, in-circuit testing uses "guarding" techniques developed in the early 1970's. In common terminology and for purposes of this application, "guarding" is performed at "guard points" by "backdriving" current necessary to achieve a desired state at those points.
More specifically, in a functional test of an IC, power must be applied to the IC. If the IC is in-circuit, because of interconnections among IC's on the printed circuit board under test (PCBUT), power will also be applied to the other IC's. Thus, when the tester applies a logic level to an input of the CUT, it may find that the input is being held in an opposite state by the output of another IC. By using backdriving, the output of an upstream interconnected component is overridden and the input of the CUT is forced to a desired state.
A disadvantage of in-circuit testing is that in-circuit testing consists of a sequence of test on individual components, and even if individual components test as "good", the PCB on which they are mounted may not necessarily function correctly. For example, an in-circuit test will not detect opens and shorts on the PCB between IC's. Other shortcomings of many present day in-circuit testers are the inability to perform analog testing and the inability to test certain active components, such as relays, operational amplifiers and voltage regulators.
6. Pin Electronics
Today's PCB's have hundreds of circuit connections, or points. Test fixtures eliminate the need to make wire-to-point connections from the tester to the UUT. Regardless of the type of fixture, access to points on the UUT is via "pins" on the fixture. Fixtures differ as to the number of pins per fixture and the extent to which stimulus and measurement units are dedicated or shared among pins.
Traditionally, functional testing has been associated with board edge connectors for board level testing, and with probe fixtures for interconnections testing. In-circuit testing has been associated with bed-of-nails fixtures, with tester pins for access to points on the PCBUT in a one-to-one correspondence. A disadvantage with bed-of-nails fixtures is the need for extensive preparation. The fixture is unique for each PCB, with fixture pins placed and wired to correspond to the PCBUT points. These fixtures must provide electrical connections to every node in the circuit board, making reliable fixtures difficult and expensive to manufacture.
Many digital pin circuits include "tester per pin" or at least "RAM behind the pins" to assist in test vector generation and test execution. Although these architectures permit high-speed testing and individual configuration of tester pins, a disadvantage is the high cost and high parts count per pin. Another shortcoming of many test pin architectures is the inability to provide both analog and digital stimulus and measurement.
7. Automated Test Equipment, Automatic Test Generation and Expert Systems
In general terms, automated test equipment (ATE) is "automated" in the sense that it performs tests with minimal operator intervention. Modern ATE uses a computer to store information about a known-good circuit, thereby creating a "model" and eliminating the need to compare the UUT to an actual known-good device. A test program generates electrical signals and applies these signals in a preprogrammed sequence as input to the UUT. The test program then accepts output signals generated by the UUT, which it compares to the stored model.
The most recent ATE provides peripherals for program storage, program generation, printout, and display. For example, ATE systems have been developed that test a PCB at the board level for shorts and opens. Then, each component may be accessed, isolated, and tested one at a time. Various fixtures connect circuit nodes to either analog or digital test instrumentation. The specific type of test to be performed in under computer control and is directed by a test program developed for that PCB.
Other recent developments is ATE have been combining test strategies at the component level. Thus, for example, in-circuit techniques are used to access and isolate components, with functional techniques ensuring that the component is tested for proper operation in its particular environment.
In-circuit ATE takes advantage of the fact that components are isolated. Ideally, the test parameters are the same for a particular component in circuit and out of circuit. To set up a test program, a known good component is identified and given a value. For passive components, this value will be in terms of analog measurements. For digital devices, these values will be the truth table associated with its standard part number. These parameters are electronically stored in a component library. Then, to test a PCB, the ATE successively obtains parameters from the CUT and compares them to the stored values. A disadvantage with many ATE systems, however, is an inability to automatically modify the out-of-circuit "ideal" to the actual in-circuit conditions. An example is when multiple pins of an IC are intentionally shorted together.
Another disadvantage with much of even today's most advanced ATE is a limited ability to test a wide variety of components. For example, a problem in the past has been the difficulty of combining circuitry for analog and digital testing in the same pin electronics. The test equipment must contend with the difficulty of maintaining a low resistance to the test instrumentation for analog circuitry while at the same time operating with high slew rate digital signals. The inherent difficulty of combining analog and digital testing is even more pronounced because of the fact that digital circuits are tolerant of parametric variations, in the sense that voltage levels are above and below certain thresholds, whereas the purpose of analog testing is to measure such variations.
Another disadvantage is the cost and size of many current ATE systems. Although several "benchtop" testers were developed in the early 1970's, they were not computer controlled, and were limited to basic parametric and some functional tests. In the 1980's, the availability of low cost microcomputers began to make smaller ATE systems feasible, but the versatility of such testers has been limited because of the difficulty of performing more than a single test strategy and of combining analog and digital test circuitry.
8. Automatic Test Generation and Expert Systems
Generally, automatic test generation for PCB testing consists of assembling boards specific and component specific information into a test for the populated PCB. With known PCB's and IC's, libraries are developed to store test models and corresponding test data. Once these model IC's are stored, additional programming is used to assemble test procedures for the IC's and for PCB's on which they are mounted. The operator enters information about the PCB and its components to the ATE. The ATE uses this information to find a test for each component on the board in a test library in the ATE's memory. When the appropriate tests are found, the ATE assembles them into a test program for the entire PCB.
The extent to which the operator must input independently obtained data is directly related to the complexity and sophistication of the test programming. For example, for unknown components, the tester must use a simulator to extract test vectors from a known-good digital component or otherwise obtain data about a known-good component from the test operator. The incorporation of a simulator for automatic test development is expensive. If the test vectors are to be supplied by the test operator, a disadvantage of many ATE's is the absence of a high level test language that simplifies the task of entering test vectors.
A recent development in ATE is the use of expert system technology to acquire and analyze test data. A knowledge base of test results may be created to aid in predicting and diagnosing failures. The extent to which the expert system program is used to modify test procedures is a function of the programming sophistication and complexity.